package xyz.hubery.service;


import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import xyz.hubery.domain.User;
import xyz.hubery.dto.UserDTO;

import java.util.List;

@Mapper(componentModel = "spring")
public interface UserMapper {
    // 获取对象的实例
    UserMapper userMapper = Mappers.getMapper(UserMapper.class);

    // 定义对象转换方法

    /**
     * 实体类转DTO
     * @param user
     * @return
     */
    UserDTO toDTO(User user);

    /**
     * DTO转实体类
     * @param userDTO
     * @return
     */
    User userFromDTO(UserDTO userDTO);

    /**
     * 实体类列表转DTO列表
     * @param users
     * @return
     */
    List<UserDTO> toDTOs(List<User> users);

    /**
     * DTO列表转实体类列表
     * @param userDTOs
     * @return
     */
    List<User> usersFromDTOs(List<UserDTO> userDTOs);
}
